Typically, in the prior art, arithmetic operations are performed in separate instruction cycles from shift operations. In a single instruction cycle either a shift is performed or an arithmetic operation is performed. Inability to shift and perform an arithmetic operation in a single instruction cycle prevents the implemention of single cycle instructions which perform unit indexing or shift and add multiply primitives.
In the prior art, rather than unit indexing, computer instruction sets have been optimized towards character manipulation by making the smallest unit of addressable storage be a character, or byte. However, the bulk of memory references are to units which are multiples of bytes (typically two, four or eight). This can produce difficulties when the contents of a register is used as an index into an array in which each member of the array comprises multiple bytes. Each index is treated as a byte number and therefore must be multiplied by the number of bytes which compose a member of the array.
Typically, in the prior art, multiply operations have been included in an instruction set. A computer architecture would implement the multiply using special hardware or using microcoded control and various data paths.